This invention relates generally to the field of data processing systems. More particularly, it deals with the management of lists of data that are shared between processes on one or more systems and the ability of programmed applications to access the shared data by a process that is independent of the physical location of the shared data.
When a list of data items is to be used by a program executing in a data processing (DP) system, many techniques exist to provide the program access to the data--with the technique related to the medium on which the data resides, and the mechanism used to retrieve the data. For example, in virtual addressing systems such as IBM's MVS/ESA there are "common" virtual address ranges where each address space shares a single set of page tables and data is shared by the simple expedient of having it located at a known virtual address within this range, or located by a pointer at a known address. As is known, appropriate locking techniques must be provided so that processes accessing this shared data do not interfere with each other.
When the data to be shared resides on an external storage medium, such as a DASD (Direct Access Storage Device), sharing processes must each have knowledge of a physical location of the data on the DASD, or must access the data through a shared catalog, or a similar device. Again, appropriate locking methods must be used.
In many environments, it is desirable to provide application programs with ways to access data items and, more particularly, lists of data items that are independent of the physical location of the data--for example, by name (e.g., IBM's partitioned data set (PDS) structure provides for a directory associated with the PDS that enables an accessor to reference a member by name), or by key (e.g., IBM's Virtual Storage Access Method (VSAM) provides for access to data records by an associated key), within the data set. A common characteristic of these techniques is that a great deal of responsibility for the management of the data and the physical location of the data on the storage media is placed with the programs sharing the data--for example, an application program executing on a system and creating a PDS member on DASD must communicate the name of that member to other systems in order to make the data in that member effectively shareable by those other systems. Furthermore, known techniques (even those like PDS's that enforce name uniqueness) require inter-process communication to avoid situations where reuse of names (or other identifiers) causes loss of data integrity because an accessor using a previously obtained name subsequently accesses unrelated data associated with the same name.
It is thus an object of the present invention to provide a system structure, list data structures, and list data access functions to provide for efficient sharing of data among two or more applications.
It is a further object of this invention to provide for physical data location independent of access to shared data.
It is a further object of this invention to provide data sharing applications with a means to access data by logical relative position within a data list.
It is a further object of this invention to provide a system for managing named data entries, each data entry name being unique within a list structure.
It is a further object of this invention to provide for the generation and management of non-reusable data entry identifiers by which data entries may be accessed by data sharing applications.
It is a further object of this invention to provide for list-direction-oriented retrieval of data entries by data sharing applications.
It is a further object of this invention to provide for movement of keyed data entries among data lists with or without change to the associated data entry key.